Skip to main content

Query Data

查询实体数据

entityQuery.findUnique

根据 params 的参数,再结合产品对该字段内置的查询参数进行数据查询。如果查询结果只有唯一的一条记录,则返回查询结果。否则返回空。

参数:

  • params: FindParams

返回:Promise<Object>

entityQuery.findOne

根据 params 的参数,再结合产品对该字段内置的查询参数进行数据查询。如果查询结果中有记录,则返回查询结果的第一行数据。否则返回空。

参数:

  • params: FindParams

返回:Promise<Object>

entityQuery.findMany

根据 params 的参数,再结合产品对该字段内置的查询参数进行数据查询。

参数:

  • params: FindParams

返回:Promise<Object[]>

entityQuery.aggregate

根据 params 的参数,再结合产品对该字段内置的查询参数进行数据聚合计算查询。

参数:

  • params: AggregateParams

返回:Promise<Object>

FindParams

type IPrimaryValue = number | string | Date | boolean;

// gql查询结构化定义
type IFindParams = {
/** 一次查询的最大条数 */
limit?: number
/**
* 查询条件:
* IFindWhereParams 入参为结构化方式
* string 入参是字符串,如"name = '张三' AND age > 18"
* 两种方式可以选任何一种使用
* string 也可以配合bindVars使用
*/
where?: IFindWhereParams | string
/** 排序规则 */
orderBy?: IFindSortParams
/** 查询返回的字段集合 */
select?: ISelectParams
/**
* 配合where中有占位符时,变量定义
* 如:
* where: "name = :V0 AND age > :V1"
* bindVars: [{name:"V0", value:"张三"}, {name: "age", value:10}]
*/
bindVars?: {name: string, value: any}
}

/** 定义操作符和value关系 */
type IFindOperatorValue = {
/** 等于, "=" */
equals?: IPrimaryValue
/** 不等于, "!=" */
not?: IPrimaryValue
/** 包含, "in" */
in?: IPrimaryValue[]
/** 不包含, "not in" */
notIn?: IPrimaryValue[]
/** 在两个数之间 */
between?: [IPrimaryValue, IPrimaryValue]
/** 小于 */
lt?: IPrimaryValue
/** 小于等于 */
lte?: IPrimaryValue
/** 大于 */
gt?: IPrimaryValue
/** 大于等于 */
gte?: IPrimaryValue
/** 模糊匹配 */
like?: string
/** 匹配给定字符开头的内容 */
startsWith?: string
/** 匹配给定字符结尾的内容 */
endsWith?: string

AND?: MapParams[]
OR?: MapParams[]
NOT?: MapParams
} & {[key: string]: IPrimaryValue | IPrimaryValue[]}

type IWhereValue = IPrimaryValue | IPrimaryValue[] | IFindWhereParams | IFindOperatorValue

type MapParams = IFindWhereParams

type IFindWhereParams = {
[key: string]: IPrimaryValue | IPrimaryValue[] | Array<MapParams> | MapParams
AND?: Array<MapParams>
OR?: Array<MapParams>
NOT?: Array<MapParams>
}

type IFindSortParams = Record<string, 'desc' | 'asc'>

type ISelectParams = Record<string, boolean | number | {[key: string]: ISelectParams}>

AggregateParams

type IAggregateParam = Record<string, boolean | number | string | null | undefined>

type IAggregateParams = Partial<{
count: IAggregateParam
avg: IAggregateParam
sum: IAggregateParam
min: IAggregateParam
max: IAggregateParam
first: IAggregateParam
last: IAggregateParam
}>